//
//  HMMainViewController.swift
//  sinaweibo
//
//  Created by lst on 16/5/19.
//  Copyright © 2016年 lst. All rights reserved.
//

import UIKit

class HMMainViewController: UITabBarController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        
        //添加TabController的子视图控制器
        // 只是影响了一个模型数组
        addChildViewControllers()
        
        let mainTabbar = HMMainTabbar()
        
        mainTabbar.plusBtn.addTarget(self, action: #selector(HMMainViewController.plusBtnClick), forControlEvents: .TouchUpInside)
        
        //赋值 只读属性不能直接赋值  但可以通过kvc 赋值
        setValue(mainTabbar, forKey: "tabBar")
        
    }
    override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(animated)
    }
    //为了让外界不能够访问按钮的监听方法 需要添加private 私有
    //一旦添加private 这个时候这个 就不具备动态派发的特性
    //需要添加 @objc 告诉系统这个方法 是基于OC消息动态派发的
    
    
    func plusBtnClick()  {
        print("我被点了...")
    }
    
    
    
    //private  表示私有化只对当前文件有效  外界不能访问
    //MARK: 添加子控制器
    private func addChildViewControllers(){
        addChildViewController(HMHomeTableViewController(), title:"首页", imageName:"tabbar_home",index: 0)
        addChildViewController(HMMessageTableViewController(), title:"消息", imageName:"tabbar_message_center",index: 1)
        addChildViewController(HMDiscoverTableViewController(), title:"发现", imageName:"tabbar_discover",index: 2)
        addChildViewController(HMProfileTableViewController(), title:"我的", imageName:"tabbar_profile",index: 3)
        
        
        
    }
    
    func addChildViewController(vc:UIViewController, title: String, imageName:String,index: Int){
        
        
        //如果标签和导航条的title是一样的话
        vc.title = title
        vc.tabBarItem.tag = index
        vc.tabBarItem.image = UIImage(named: imageName)
        //设置选中时的图片 需要设置渲染
        vc.tabBarItem.selectedImage = UIImage(named: imageName + "_selected")?.imageWithRenderingMode(.AlwaysOriginal)
        //设置title颜色 NSForegroundColorAttributeName  前景色
        vc.tabBarItem.setTitleTextAttributes([NSForegroundColorAttributeName : UIColor .orangeColor()], forState: .Selected)
        
        vc.tabBarItem.titlePositionAdjustment = UIOffset(horizontal: 0, vertical: -3)
        //内嵌到导航控制器
        let nav = HMBaseNavController(rootViewController: vc)
        //添加子视图
        addChildViewController(nav)
    }
    //实现协议方法
    override func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem){
        //遍历tabbar子视图
        var index: Int = 0
        for v in tabBar.subviews{
            if v.isKindOfClass(NSClassFromString("UITabBarButton")!){
                //确定点击的是哪个tabBarBUtton
                if index == item.tag{
                    //遍历子视图
                    for subView in v.subviews {
                        if subView.isKindOfClass(NSClassFromString("UITabBarSwappableImageView")!) {
                            subView.transform = CGAffineTransformMakeScale(0.5, 0.5)
                            //在动画闭包中  回复初始值
                            UIView.animateWithDuration(0.6, delay: 0, usingSpringWithDamping: 0.3, initialSpringVelocity: 4, options: [], animations: {
                                subView.transform = CGAffineTransformIdentity
                                }, completion: { (_) in
                                    print("ok")
                            })
                            
                        }
                    }
                }
                index += 1
            }
        }
    }
    
}
////private 是相当于当前文件的
//class person: NSObject {
//    func haha() {
//        let tab = HMMainViewController()
//        tab.addChildViewControllers()
//
//    }
//}
